1. Field of the Invention
The present invention relates generally to the field of application development, and more particularly to end user programming of mobile phone applications.
2. Description of the Related Art
Mobile devices, such as smart phones, tablets, and other handheld devices have become widespread and important to the daily activities of many consumers and businesses. Traditionally, these types of devices have primarily served as communications devices. Recently, however, consumers are increasingly relying upon these devices as an integral tool in the performance of a wide-range of personal and work-related tasks. In response, mobile phones and other wireless handheld devices have evolved into complex computing devices with equally complex computer hardware and software.
While many of these mobile devices continue to be used for various forms of communication (i.e., voice calls and text messages), they also generally provide other various functionalities, including accessing and displaying websites, sending and receiving e-mails, taking and displaying photographs and videos, playing music and other forms of audio, etc. These, and numerous other functionalities, are generally performed by software components that are built in to the device's mobile operating system, or separate mobile applications (apps) that run on top of the mobile operating system. Recently, development and use of mobile apps has become prolific, and thousands of apps now exist across a wide array of mobile devices.
The goal of human-computer interaction is evolving from making systems easy to use, to making systems that are easy to develop. Mobile phone application developers have spent an enormous amount of time and effort delivering new functionality to consumers that promise to give them greater flexibility and control over their mobile phone's vast capabilities. Mobile applications installed on the device have become the vessel that delivers this functionality to the end user. Developing new or modified applications that effectively support end users' goals has been a task reserved for application developers with considerable expertise in programming that cannot be expected from most people. Therefore, decisions regarding the needs and preferences of end users employing available features lie with the developer. Given that individual end user requirements are diversified, changing, and at times hard to identify precisely, working through conventional development cycles with application developers to keep pace with evolving contexts proves slow, time-consuming, and expensive.
Flexibility really means that end users themselves should be able to develop, customize, and continuously adapt applications to suit individualized needs. Therefore, means to empower end users to realize this type of flexibility, at a level of complexity appropriate for their individual skills and situations, not only makes better use of all available features on a mobile device, but also claims for all end users an ability to control how to utilize the wide array of functions on their mobile devices.
Business Process Model and Notation (BPMN) workflow technology is a standard for business process modeling that provides graphical notation for specifying business processes in diagram based on flowcharting techniques. A workflow is a depiction of a sequence of operations declared as work of a simple or complex mechanism or of machines. A workflow application is a software application which automates, at least to some degree, a process or processes. The processes are usually business-related, but it may be any process that requires a series of steps that can be automated via software. The BPMN specification provides a mapping between the graphics of the notation and the underlying constructs of execution languages, particularly Business Process Execution Language (BPEL). Business Process Modeling (BPM) suite software provides programming interfaces (i.e., application program interfaces) that allow applications to be built to leverage the BPMN engine.